大规模神经网络优化:超参最佳实践与规模律
从理论分析入手把握大规模神经网络优化的规律,可以指导实践中的超参数选择。反过来,实践中的超参数选择也可以指导理论分析。本篇文章聚焦于大语言模型,介绍从 GPT 以来大家普遍使用的训练超参数的变化。
规模律研究的是随着神经网络规模的增大,超参数、性能是如何改变的。规模律是对模型、数据、优化器关系的深刻刻画,揭示大模型优化时的普遍规律。通过规模律,我们可以用少量成本在小模型上验证超参数的选择和性能的变化情况,继而外推到大模型上。
在 LLM 中规模性常常变换模型大小和数据规模,进行大量调参而保持优化器不变。故对于大模型优化器而言,规模性是其性能很好的展现(性能上限)。设计更好的优化器(用更少的数据达到相同的性能)就是在挑战现有的规模律。
神经网络规模律
大语言模型规模律
对不同的 没有尝试使用不同的学习率调整策略(正确的学习率调整策略对训练影响很大) [KMH+20] 使用的 较小。规模性存在曲率,导致用太小的 得到的结论不准确。(规模性存在曲率也说明了最终该规律会失效)
5. 模型的迁移泛化能力与在训练数据集上的泛化能力正相关。
6. 更大的模型收敛更快(更少的数据量达到相同的损失)
大语言模型规模律拾遗
3.1 涌现是指标选择的结果,连续指标与参数规模符合幂律分布
3.2 大模型需要更小的学习率
通过上文中的大模型参数经验,我们很容易就发现大模型需要更小的学习率。[YHB+22] 在下左图中展示了这点。其认为这是为了控制总方差在一定值(方差随参数量以 增大)。对于这点笔者暂未找到详细的理论解释。[YHB+22] 中还提出了一种新的初始化和参数设置方法以保证不同规模的模型可以使用相同的学习率,这里不再展开。
3.3 使用重复数据训练时(multi-epoch),应该用更多的轮次训练较小的模型
3.4 使用重复数据训练对训练帮助很小
3.5 训练比 Chinchilla 规模律更小的模型
Chinchilla 规模律的出发点是给定计算量,通过分配参数量和数据量最小化损失值。换言之,给定要达到的损失值,最小化计算量。然而在实际中,训练一个小模型能带来计算量(代表训练开销)以外的收益:
小模型部署后进行推理成本更小 小模型训练所需的集群数量更少
训练所需的数据量不够(正如 [XFZ+23] 指出的,我们正在用尽互联网上所有的 tokens)。 小集群上训练小模型需要更长的训练时间(Llama2 500k its);如果使用大集群训练则更困难(比如要使用更大的批量大小才能提高效率)。
LLM 的超参选择
4.1 GPT(117M):
Adam lr:2.5e-4 sch: warmup linear 2k, cosine decay to 0 bs: 32k=64x512 its: 3M (100e) L2: 0.01 init: N(0, 0.02)
Adam(0.9,0.999) lr: 1e-4 sch: warmup 10k, linear decay to 0 bs: 128k=256x512 its: 1M (40e) L2: 0.01 dropout: 0.1
4.3 Megatron-LM(GPT2 8.3B & Bert 3.9B):
Adam lr: 1.5e-4 sch: warmup 2k, cosine decay to 1e-5 bs: 512k=512x1024 its: 300k L2: 0.01 dropout: 0.1 gradient norm clipping: 1.0
AdaFactor lr: 1e-2 sch: warmup constant 10k, sqrt decay bs: 65k=128x512 its: 500k (1e)
Adam(0.9, 0.95, eps=1e-8) lr & final bs: sch: warmup linear 375m tokens, cosine decay to 0.1xlr 260b tokens, continue training with 0.1xlr bs sch: 32k to final bs gradually in 4-12B tokens seq length: 2048 data: 680B gradient norm clipping: 1.0
Adam (Adafactor unstable beyond 7.1B) lr & final bs: sch: warmup 1.5k, cosine decay to 0.1xlr gradient norm clipping: 0.25 for 7.1B & 280B, 1.0 for the rest
AdamW lr: 1e-4 bs: 1.5M to 3M others follow Gopher
Adam(0.9, 0.95) (SGD plateau quickly) lr & bs: sch: warmup linear 2k, decay to 0.1xlr L2: 0.1 dropout: 0.1 gradient norm clipping: 1.0 init: N(0, 0.006), output layer N(0, 0.006* )
Adafactor(0.9, 1-) lr 1e-2
bs: 1M (<50k), 2M (<115k), 4M (<255k)
dropout: 0.1 gradient norm clipping: 1.0 its: 255kinit: N(0, embedding N(0,1)
AdamW(0.9, 0.95) lr & bs: sch: warmup 2k, decay to 0.1xlr L2: 0.1 gradient norm clipping: 1.0
AdamW(0.9, 0.95, eps=1e-5) lr sch: warmup 2k, decay to 0.1xlr L2: 0.1 gradient norm clipping: 1.0
参考文献
[ADV+23] Why do we need weight decay in modern deep learning?
[CGR+23] Broken neural scaling laws
[HBM+22] Training Compute-Optimal Large Language Models
[KMH+20] Scaling Laws for Neural Language Models
[SMK23] Are Emergent Abilities of Large Language Models a Mirage?
[YHB+22] Tensor Programs V: Tuning Large Neural Networks via Zero-Shot Hyperparameter Transfer
[MRB+23] Scaling Data-Constrained Language Models
[XFZ+23] To Repeat or Not To Repeat: Insights from Scaling LLM under Token-Crisis
[H23] Go smol or go home
更多阅读
#投 稿 通 道#
让你的文字被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析、科研心得或竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。
📝 稿件基本要求:
• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注
• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题
• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算
📬 投稿通道:
• 投稿邮箱:hr@paperweekly.site
• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者
• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿
△长按添加PaperWeekly小编
🔍
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧